{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**问题：**\n",
    "假设你正在为一个电影推荐系统设计一个简单的KNN算法。我们有以下一些用户的电影评分数据，数据由两个特征组成：用户对电影A和电影B的评分，分别在1-5之间。用户的标签（电影类型偏好）是动作片（标签0）或者是喜剧片（标签1）。我们有一个新用户，他给电影A评分为3，电影B评分为4。请问这个用户可能偏好哪种类型的电影？\n",
    "\n",
    "**数据：**\n",
    "\n",
    "| 用户   | 电影A评分 | 电影B评分 | 偏好类型 |\n",
    "| ------ | --------- | --------- | -------- |\n",
    "| 用户1  | 5         | 1         | 动作片   |\n",
    "| 用户2  | 4         | 2         | 动作片   |\n",
    "| 用户3  | 2         | 5         | 喜剧片   |\n",
    "| 用户4  | 1         | 4         | 喜剧片   |\n",
    "| 用户5  | 3         | 2         | 动作片   |\n",
    "| 用户6  | 2         | 5         | 喜剧片   |\n",
    "\n",
    "你需要做以下步骤：\n",
    "1. 构造数据\n",
    "2. 创建KNN模型\n",
    "3. 使用数据训练模型\n",
    "4. 预测新用户的喜好"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 0. 引入核心包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.neighbors import KNeighborsClassifier"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. X, y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = np.array([\n",
    "    [5, 1],\n",
    "    [4, 2],\n",
    "    [2, 5],\n",
    "    [1, 4],\n",
    "    [3, 2],\n",
    "    [2, 5]\n",
    "])\n",
    "\n",
    "y = np.array([0, 0, 1, 1, 0, 1])  # 0表示动作片，1表示喜剧片"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. 创建 KNN 模型\n",
    "k = 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "k = 3\n",
    "knn = KNeighborsClassifier(n_neighbors=k)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-2 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: #000;\n",
       "  --sklearn-color-text-muted: #666;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-2 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-2 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-2 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: flex;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "  align-items: start;\n",
       "  justify-content: space-between;\n",
       "  gap: 0.5em;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label .caption {\n",
       "  font-size: 0.6rem;\n",
       "  font-weight: lighter;\n",
       "  color: var(--sklearn-color-text-muted);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content {\n",
       "  display: none;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  overflow: visible;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-2 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-2 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-2 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 0.5em;\n",
       "  text-align: center;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-2 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".estimator-table summary {\n",
       "    padding: .5rem;\n",
       "    font-family: monospace;\n",
       "    cursor: pointer;\n",
       "}\n",
       "\n",
       ".estimator-table details[open] {\n",
       "    padding-left: 0.1rem;\n",
       "    padding-right: 0.1rem;\n",
       "    padding-bottom: 0.3rem;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table {\n",
       "    margin-left: auto !important;\n",
       "    margin-right: auto !important;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(odd) {\n",
       "    background-color: #fff;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:nth-child(even) {\n",
       "    background-color: #f6f6f6;\n",
       "}\n",
       "\n",
       ".estimator-table .parameters-table tr:hover {\n",
       "    background-color: #e0e0e0;\n",
       "}\n",
       "\n",
       ".estimator-table table td {\n",
       "    border: 1px solid rgba(106, 105, 104, 0.232);\n",
       "}\n",
       "\n",
       ".user-set td {\n",
       "    color:rgb(255, 94, 0);\n",
       "    text-align: left;\n",
       "}\n",
       "\n",
       ".user-set td.value pre {\n",
       "    color:rgb(255, 94, 0) !important;\n",
       "    background-color: transparent !important;\n",
       "}\n",
       "\n",
       ".default td {\n",
       "    color: black;\n",
       "    text-align: left;\n",
       "}\n",
       "\n",
       ".user-set td i,\n",
       ".default td i {\n",
       "    color: black;\n",
       "}\n",
       "\n",
       ".copy-paste-icon {\n",
       "    background-image: url();\n",
       "    background-repeat: no-repeat;\n",
       "    background-size: 14px 14px;\n",
       "    background-position: 0;\n",
       "    display: inline-block;\n",
       "    width: 14px;\n",
       "    height: 14px;\n",
       "    cursor: pointer;\n",
       "}\n",
       "</style><body><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>KNeighborsClassifier(n_neighbors=3)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>KNeighborsClassifier</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.7/modules/generated/sklearn.neighbors.KNeighborsClassifier.html\">?<span>Documentation for KNeighborsClassifier</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\" data-param-prefix=\"\">\n",
       "        <div class=\"estimator-table\">\n",
       "            <details>\n",
       "                <summary>Parameters</summary>\n",
       "                <table class=\"parameters-table\">\n",
       "                  <tbody>\n",
       "                    \n",
       "        <tr class=\"user-set\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('n_neighbors',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">n_neighbors&nbsp;</td>\n",
       "            <td class=\"value\">3</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('weights',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">weights&nbsp;</td>\n",
       "            <td class=\"value\">&#x27;uniform&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('algorithm',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">algorithm&nbsp;</td>\n",
       "            <td class=\"value\">&#x27;auto&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('leaf_size',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">leaf_size&nbsp;</td>\n",
       "            <td class=\"value\">30</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('p',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">p&nbsp;</td>\n",
       "            <td class=\"value\">2</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('metric',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">metric&nbsp;</td>\n",
       "            <td class=\"value\">&#x27;minkowski&#x27;</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('metric_params',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">metric_params&nbsp;</td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "\n",
       "        <tr class=\"default\">\n",
       "            <td><i class=\"copy-paste-icon\"\n",
       "                 onclick=\"copyToClipboard('n_jobs',\n",
       "                          this.parentElement.nextElementSibling)\"\n",
       "            ></i></td>\n",
       "            <td class=\"param\">n_jobs&nbsp;</td>\n",
       "            <td class=\"value\">None</td>\n",
       "        </tr>\n",
       "    \n",
       "                  </tbody>\n",
       "                </table>\n",
       "            </details>\n",
       "        </div>\n",
       "    </div></div></div></div></div><script>function copyToClipboard(text, element) {\n",
       "    // Get the parameter prefix from the closest toggleable content\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${text}` : text;\n",
       "\n",
       "    const originalStyle = element.style;\n",
       "    const computedStyle = window.getComputedStyle(element);\n",
       "    const originalWidth = computedStyle.width;\n",
       "    const originalHTML = element.innerHTML.replace('Copied!', '');\n",
       "\n",
       "    navigator.clipboard.writeText(fullParamName)\n",
       "        .then(() => {\n",
       "            element.style.width = originalWidth;\n",
       "            element.style.color = 'green';\n",
       "            element.innerHTML = \"Copied!\";\n",
       "\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        })\n",
       "        .catch(err => {\n",
       "            console.error('Failed to copy:', err);\n",
       "            element.style.color = 'red';\n",
       "            element.innerHTML = \"Failed!\";\n",
       "            setTimeout(() => {\n",
       "                element.innerHTML = originalHTML;\n",
       "                element.style = originalStyle;\n",
       "            }, 2000);\n",
       "        });\n",
       "    return false;\n",
       "}\n",
       "\n",
       "document.querySelectorAll('.fa-regular.fa-copy').forEach(function(element) {\n",
       "    const toggleableContent = element.closest('.sk-toggleable__content');\n",
       "    const paramPrefix = toggleableContent ? toggleableContent.dataset.paramPrefix : '';\n",
       "    const paramName = element.parentElement.nextElementSibling.textContent.trim();\n",
       "    const fullParamName = paramPrefix ? `${paramPrefix}${paramName}` : paramName;\n",
       "\n",
       "    element.setAttribute('title', fullParamName);\n",
       "});\n",
       "</script></body>"
      ],
      "text/plain": [
       "KNeighborsClassifier(n_neighbors=3)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn.fit(X, y)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. 用模型推理(预测)用户的喜好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "new_user = np.array([[3, 4]])\n",
    "prediction = knn.predict(new_user)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. 数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 21160 (\\N{CJK UNIFIED IDEOGRAPH-52A8}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20316 (\\N{CJK UNIFIED IDEOGRAPH-4F5C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 29255 (\\N{CJK UNIFIED IDEOGRAPH-7247}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 21916 (\\N{CJK UNIFIED IDEOGRAPH-559C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 21095 (\\N{CJK UNIFIED IDEOGRAPH-5267}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 26032 (\\N{CJK UNIFIED IDEOGRAPH-65B0}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 29992 (\\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/headless/miniconda3/lib/python3.13/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25143 (\\N{CJK UNIFIED IDEOGRAPH-6237}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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SZO0/Zo1a4bHH38ckyZNQmlpKaKioio95rhx49CoUSNERUXh0KFDOH/+PFJTUzFz5kxcvnzZ4DYJCQmIjo7GI488ovMzceJE3Lp1C3v27DEp75YtW+KLL77A6dOn8b///Q/jxo2Dq6urTp/g4GAcOHAAeXl5uHnzpkn712jTpg369++PqVOn4qeffkJmZiamTp1q8CwWEdUeFkZEVClPT094enpWuv7tt9/GyJEj8eyzz6JLly7466+/8N133+nNkxk3bhx+/vlnjBgxQq/IKM/NzQ1paWlo2rQpRowYgbZt22LixIm4d++ewTiOHz+On3/+GSNHjtRb5+HhgcjISJOfabR27VrcvHkTISEhePbZZ7WPIyjv/fffx/79+w0+wsAUGzZswEMPPYRevXrhqaeewpQpU+Dh4QEXF5f73icR1YxE8II2EVGdcPnyZQQGBuL7779Hv379rB0O0QOJhRERkZX88MMPKCwsRIcOHZCbm4u5c+ciOzsbf/75p97EbSKqHbwrjYjIShQKBRYsWIC///4bHh4eePzxx7Fp0yYWRURWxDNGRERERGqcfE1ERESkxsKIiIiISI2FEREREZEaCyMiIiIiNRZGRERERGosjIiIiIjUWBgRERERqbEwIiIiIlJjYURERESk9v8yF67HZB+DnwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"User Movie Preference\", size=15) \n",
    "plt.xlabel(\"Movie A rating\")\n",
    "plt.ylabel(\"Movie B rating\")\n",
    "plt.grid()\n",
    "\n",
    "# 绘制原始样本点，要求不同的影片喜好类别用不同的颜色标记\n",
    "plt.scatter(X[y==0, 0], X[y==0, 1], c='orange', label='动作片')\n",
    "plt.scatter(X[y==1, 0], X[y==1, 1], c='blue', label='喜剧片')\n",
    "\n",
    "# 绘制新数据点，用红色x标记，大小为8\n",
    "plt.plot(new_user[0,0], new_user[0,1], marker='x', color='red', markersize=8, label='新用户')\n",
    "\n",
    "# 新数据最近邻索引为第一个最近邻的索引\n",
    "dist, idx = knn.kneighbors(new_user)\n",
    "nearest = X[idx[0][0]]\n",
    "\n",
    "# 用红线标记新数据点与最近邻点的连接线\n",
    "plt.plot([new_user[0,0], nearest[0]], [new_user[0,1], nearest[1]], 'r--')\n",
    "\n",
    "# 为每个点添加坐标文本  \n",
    "for x_, y_ in zip(X[:, 0], X[:, 1]):\n",
    "    plt.text(x_, y_+0.1, f'({x_}, {y_})') \n",
    "\n",
    "# 为新数据点添加坐标文本\n",
    "plt.text(new_user[0,0], new_user[0,1]+0.1, f'({new_user[0,0]}, {new_user[0,1]})')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[1;33mJupyter detected\u001b[0m\u001b[1;33m...\u001b[0m\n",
      "\u001b[1;32m2\u001b[0m\u001b[1;32m channel Terms of Service accepted\u001b[0m\n",
      "Channels:\n",
      " - defaults\n",
      "Platform: linux-64\n",
      "Collecting package metadata (repodata.json): done\n",
      "Solving environment: done\n",
      "\n",
      "## Package Plan ##\n",
      "\n",
      "  environment location: /headless/miniconda3\n",
      "\n",
      "  added / updated specs:\n",
      "    - matplotlib\n",
      "    - numpy\n",
      "    - scikit-learn\n",
      "\n",
      "\n",
      "The following packages will be downloaded:\n",
      "\n",
      "    package                    |            build\n",
      "    ---------------------------|-----------------\n",
      "    aom-3.6.0                  |       h6a678d5_0         2.8 MB\n",
      "    blas-1.0                   |              mkl           6 KB\n",
      "    brotli-python-1.0.9        |  py313h6a678d5_9         356 KB\n",
      "    cairo-1.18.4               |       h44eff21_0         728 KB\n",
      "    contourpy-1.3.1            |  py313hdb19cb5_0         277 KB\n",
      "    cycler-0.11.0              |     pyhd3eb1b0_0          12 KB\n",
      "    cyrus-sasl-2.1.28          |       h1110e0f_3         242 KB\n",
      "    dav1d-1.2.1                |       h5eee18b_0         823 KB\n",
      "    fontconfig-2.14.1          |       h55d465d_3         281 KB\n",
      "    fonttools-4.55.3           |  py313h5eee18b_0         2.9 MB\n",
      "    freetype-2.13.3            |       h4a9f257_0         686 KB\n",
      "    fribidi-1.0.10             |       h7b6447c_0         103 KB\n",
      "    graphite2-1.3.14           |       h295c915_1          97 KB\n",
      "    harfbuzz-10.2.0            |       hdfddeaa_1         2.3 MB\n",
      "    intel-openmp-2023.1.0      |   hdb19cb5_46306        17.2 MB\n",
      "    joblib-1.5.2               |  py313h06a4308_0         524 KB\n",
      "    jpeg-9e                    |       h5eee18b_3         262 KB\n",
      "    kiwisolver-1.4.8           |  py313h6a678d5_0          69 KB\n",
      "    lcms2-2.16                 |       h92b89f2_1         269 KB\n",
      "    lerc-4.0.0                 |       h6a678d5_0         261 KB\n",
      "    libabseil-20250127.0       | cxx17_h6a678d5_0         1.3 MB\n",
      "    libavif-1.1.1              |       h5eee18b_0         144 KB\n",
      "    libcups-2.4.2              |       h252cb56_2         4.5 MB\n",
      "    libdeflate-1.22            |       h5eee18b_0          68 KB\n",
      "    libdrm-2.4.124             |       h5eee18b_0         320 KB\n",
      "    libedit-3.1.20230828       |       h5eee18b_0         179 KB\n",
      "    libegl-1.7.0               |       h5eee18b_2          44 KB\n",
      "    libevent-2.1.12            |       hdbd6064_1         453 KB\n",
      "    libgfortran-ng-11.2.0      |       h00389a5_1          20 KB\n",
      "    libgfortran5-11.2.0        |       h1234567_1         2.0 MB\n",
      "    libgl-1.7.0                |       h5eee18b_2         149 KB\n",
      "    libglib-2.84.2             |       h37c7471_0         1.7 MB\n",
      "    libglvnd-1.7.0             |       h5eee18b_2         140 KB\n",
      "    libglx-1.7.0               |       h5eee18b_2          87 KB\n",
      "    libiconv-1.16              |       h5eee18b_3         759 KB\n",
      "    libkrb5-1.21.3             |       h520c7b4_4         874 KB\n",
      "    libllvm15-15.0.7           |       he89c38a_4        35.4 MB\n",
      "    libpciaccess-0.18          |       h5eee18b_0          26 KB\n",
      "    libpng-1.6.39              |       h5eee18b_0         304 KB\n",
      "    libpq-17.4                 |       h02b6914_2         3.0 MB\n",
      "    libprotobuf-5.29.3         |       h3cdef7c_1         3.5 MB\n",
      "    libtiff-4.7.0              |       hde9077f_0         447 KB\n",
      "    libwebp-base-1.3.2         |       h5eee18b_1         425 KB\n",
      "    libxkbcommon-1.9.1         |       h69220b7_0         732 KB\n",
      "    lmdb-0.9.31                |       hb25bd0a_0         469 KB\n",
      "    matplotlib-3.10.5          |  py313h06a4308_0           9 KB\n",
      "    matplotlib-base-3.10.5     |  py313he37261f_0         8.3 MB\n",
      "    mesalib-25.1.5             |       h31e3550_0         8.9 MB\n",
      "    mkl-2023.1.0               |   h213fc3f_46344       171.5 MB\n",
      "    mkl-service-2.4.0          |  py313h5eee18b_2          66 KB\n",
      "    mkl_fft-1.3.11             |  py313h5eee18b_0         207 KB\n",
      "    mkl_random-1.2.8           |  py313h06d7b56_0         324 KB\n",
      "    mysql-8.4.0                |       h721767e_2        56.5 MB\n",
      "    numpy-2.3.1                |  py313h8d96ed3_0          11 KB\n",
      "    numpy-base-2.3.1           |  py313h8e760e0_0         8.6 MB\n",
      "    openjpeg-2.5.2             |       h0d4d230_1         373 KB\n",
      "    openldap-2.6.10            |       h8e75217_0         815 KB\n",
      "    pillow-11.3.0              |  py313hb1c3d2d_0         991 KB\n",
      "    pixman-0.46.4              |       h7934f7d_0         1.9 MB\n",
      "    pyparsing-3.2.0            |  py313h06a4308_0         452 KB\n",
      "    pyqt-6.7.1                 |  py313h8dad735_2         5.1 MB\n",
      "    pyqt6-sip-13.9.1           |  py313h6ce4db3_2          81 KB\n",
      "    qtbase-6.7.3               |       h10a5587_4        11.9 MB\n",
      "    qtdeclarative-6.7.3        |       h7934f7d_1        16.2 MB\n",
      "    qtsvg-6.7.3                |       he4bddd1_1         291 KB\n",
      "    qttools-6.7.3              |       h5a8de97_1         6.6 MB\n",
      "    qtwebchannel-6.7.3         |       h7934f7d_1         153 KB\n",
      "    qtwebsockets-6.7.3         |       h7934f7d_1         135 KB\n",
      "    scikit-learn-1.7.1         |  py313h06d7b56_0        10.6 MB\n",
      "    scipy-1.16.0               |  py313h0cc6016_0        24.8 MB\n",
      "    setuptools-72.1.0          |  py313h06a4308_0         2.6 MB\n",
      "    sip-6.10.0                 |  py313h6a678d5_0         706 KB\n",
      "    spirv-tools-2025.1         |       hdb19cb5_0         2.1 MB\n",
      "    tbb-2021.8.0               |       hdb19cb5_0         1.6 MB\n",
      "    threadpoolctl-3.5.0        |  py313h7040dfc_0          49 KB\n",
      "    xcb-util-0.4.1             |       h5eee18b_2          19 KB\n",
      "    xcb-util-cursor-0.1.5      |       h5eee18b_0          19 KB\n",
      "    xcb-util-image-0.4.0       |       h5eee18b_2          23 KB\n",
      "    xcb-util-keysyms-0.4.1     |       h5eee18b_0          13 KB\n",
      "    xcb-util-renderutil-0.3.10 |       h5eee18b_0          16 KB\n",
      "    xcb-util-wm-0.4.2          |       h5eee18b_0          55 KB\n",
      "    xkeyboard-config-2.44      |       h5eee18b_0         411 KB\n",
      "    xorg-libice-1.1.2          |       h9b100fa_0          57 KB\n",
      "    xorg-libsm-1.2.6           |       h9b100fa_0          26 KB\n",
      "    xorg-libxext-1.3.6         |       h9b100fa_0          49 KB\n",
      "    xorg-libxfixes-6.0.1       |       h9b100fa_0          18 KB\n",
      "    xorg-libxrandr-1.5.4       |       h9b100fa_0          28 KB\n",
      "    xorg-libxrender-0.9.12     |       h9b100fa_0          31 KB\n",
      "    xorg-libxshmfence-1.3.3    |       h9b100fa_0          11 KB\n",
      "    xorg-libxxf86vm-1.1.6      |       h9b100fa_0          16 KB\n",
      "    ------------------------------------------------------------\n",
      "                                           Total:       429.5 MB\n",
      "\n",
      "The following NEW packages will be INSTALLED:\n",
      "\n",
      "  aom                pkgs/main/linux-64::aom-3.6.0-h6a678d5_0 \n",
      "  blas               pkgs/main/linux-64::blas-1.0-mkl \n",
      "  brotli-python      pkgs/main/linux-64::brotli-python-1.0.9-py313h6a678d5_9 \n",
      "  cairo              pkgs/main/linux-64::cairo-1.18.4-h44eff21_0 \n",
      "  contourpy          pkgs/main/linux-64::contourpy-1.3.1-py313hdb19cb5_0 \n",
      "  cycler             pkgs/main/noarch::cycler-0.11.0-pyhd3eb1b0_0 \n",
      "  cyrus-sasl         pkgs/main/linux-64::cyrus-sasl-2.1.28-h1110e0f_3 \n",
      "  dav1d              pkgs/main/linux-64::dav1d-1.2.1-h5eee18b_0 \n",
      "  fontconfig         pkgs/main/linux-64::fontconfig-2.14.1-h55d465d_3 \n",
      "  fonttools          pkgs/main/linux-64::fonttools-4.55.3-py313h5eee18b_0 \n",
      "  freetype           pkgs/main/linux-64::freetype-2.13.3-h4a9f257_0 \n",
      "  fribidi            pkgs/main/linux-64::fribidi-1.0.10-h7b6447c_0 \n",
      "  graphite2          pkgs/main/linux-64::graphite2-1.3.14-h295c915_1 \n",
      "  harfbuzz           pkgs/main/linux-64::harfbuzz-10.2.0-hdfddeaa_1 \n",
      "  intel-openmp       pkgs/main/linux-64::intel-openmp-2023.1.0-hdb19cb5_46306 \n",
      "  joblib             pkgs/main/linux-64::joblib-1.5.2-py313h06a4308_0 \n",
      "  jpeg               pkgs/main/linux-64::jpeg-9e-h5eee18b_3 \n",
      "  kiwisolver         pkgs/main/linux-64::kiwisolver-1.4.8-py313h6a678d5_0 \n",
      "  lcms2              pkgs/main/linux-64::lcms2-2.16-h92b89f2_1 \n",
      "  lerc               pkgs/main/linux-64::lerc-4.0.0-h6a678d5_0 \n",
      "  libabseil          pkgs/main/linux-64::libabseil-20250127.0-cxx17_h6a678d5_0 \n",
      "  libavif            pkgs/main/linux-64::libavif-1.1.1-h5eee18b_0 \n",
      "  libcups            pkgs/main/linux-64::libcups-2.4.2-h252cb56_2 \n",
      "  libdeflate         pkgs/main/linux-64::libdeflate-1.22-h5eee18b_0 \n",
      "  libdrm             pkgs/main/linux-64::libdrm-2.4.124-h5eee18b_0 \n",
      "  libedit            pkgs/main/linux-64::libedit-3.1.20230828-h5eee18b_0 \n",
      "  libegl             pkgs/main/linux-64::libegl-1.7.0-h5eee18b_2 \n",
      "  libevent           pkgs/main/linux-64::libevent-2.1.12-hdbd6064_1 \n",
      "  libgfortran-ng     pkgs/main/linux-64::libgfortran-ng-11.2.0-h00389a5_1 \n",
      "  libgfortran5       pkgs/main/linux-64::libgfortran5-11.2.0-h1234567_1 \n",
      "  libgl              pkgs/main/linux-64::libgl-1.7.0-h5eee18b_2 \n",
      "  libglib            pkgs/main/linux-64::libglib-2.84.2-h37c7471_0 \n",
      "  libglvnd           pkgs/main/linux-64::libglvnd-1.7.0-h5eee18b_2 \n",
      "  libglx             pkgs/main/linux-64::libglx-1.7.0-h5eee18b_2 \n",
      "  libiconv           pkgs/main/linux-64::libiconv-1.16-h5eee18b_3 \n",
      "  libkrb5            pkgs/main/linux-64::libkrb5-1.21.3-h520c7b4_4 \n",
      "  libllvm15          pkgs/main/linux-64::libllvm15-15.0.7-he89c38a_4 \n",
      "  libpciaccess       pkgs/main/linux-64::libpciaccess-0.18-h5eee18b_0 \n",
      "  libpng             pkgs/main/linux-64::libpng-1.6.39-h5eee18b_0 \n",
      "  libpq              pkgs/main/linux-64::libpq-17.4-h02b6914_2 \n",
      "  libprotobuf        pkgs/main/linux-64::libprotobuf-5.29.3-h3cdef7c_1 \n",
      "  libtiff            pkgs/main/linux-64::libtiff-4.7.0-hde9077f_0 \n",
      "  libwebp-base       pkgs/main/linux-64::libwebp-base-1.3.2-h5eee18b_1 \n",
      "  libxkbcommon       pkgs/main/linux-64::libxkbcommon-1.9.1-h69220b7_0 \n",
      "  lmdb               pkgs/main/linux-64::lmdb-0.9.31-hb25bd0a_0 \n",
      "  matplotlib         pkgs/main/linux-64::matplotlib-3.10.5-py313h06a4308_0 \n",
      "  matplotlib-base    pkgs/main/linux-64::matplotlib-base-3.10.5-py313he37261f_0 \n",
      "  mesalib            pkgs/main/linux-64::mesalib-25.1.5-h31e3550_0 \n",
      "  mkl                pkgs/main/linux-64::mkl-2023.1.0-h213fc3f_46344 \n",
      "  mkl-service        pkgs/main/linux-64::mkl-service-2.4.0-py313h5eee18b_2 \n",
      "  mkl_fft            pkgs/main/linux-64::mkl_fft-1.3.11-py313h5eee18b_0 \n",
      "  mkl_random         pkgs/main/linux-64::mkl_random-1.2.8-py313h06d7b56_0 \n",
      "  mysql              pkgs/main/linux-64::mysql-8.4.0-h721767e_2 \n",
      "  numpy              pkgs/main/linux-64::numpy-2.3.1-py313h8d96ed3_0 \n",
      "  numpy-base         pkgs/main/linux-64::numpy-base-2.3.1-py313h8e760e0_0 \n",
      "  openjpeg           pkgs/main/linux-64::openjpeg-2.5.2-h0d4d230_1 \n",
      "  openldap           pkgs/main/linux-64::openldap-2.6.10-h8e75217_0 \n",
      "  pillow             pkgs/main/linux-64::pillow-11.3.0-py313hb1c3d2d_0 \n",
      "  pixman             pkgs/main/linux-64::pixman-0.46.4-h7934f7d_0 \n",
      "  pyparsing          pkgs/main/linux-64::pyparsing-3.2.0-py313h06a4308_0 \n",
      "  pyqt               pkgs/main/linux-64::pyqt-6.7.1-py313h8dad735_2 \n",
      "  pyqt6-sip          pkgs/main/linux-64::pyqt6-sip-13.9.1-py313h6ce4db3_2 \n",
      "  qtbase             pkgs/main/linux-64::qtbase-6.7.3-h10a5587_4 \n",
      "  qtdeclarative      pkgs/main/linux-64::qtdeclarative-6.7.3-h7934f7d_1 \n",
      "  qtsvg              pkgs/main/linux-64::qtsvg-6.7.3-he4bddd1_1 \n",
      "  qttools            pkgs/main/linux-64::qttools-6.7.3-h5a8de97_1 \n",
      "  qtwebchannel       pkgs/main/linux-64::qtwebchannel-6.7.3-h7934f7d_1 \n",
      "  qtwebsockets       pkgs/main/linux-64::qtwebsockets-6.7.3-h7934f7d_1 \n",
      "  scikit-learn       pkgs/main/linux-64::scikit-learn-1.7.1-py313h06d7b56_0 \n",
      "  scipy              pkgs/main/linux-64::scipy-1.16.0-py313h0cc6016_0 \n",
      "  sip                pkgs/main/linux-64::sip-6.10.0-py313h6a678d5_0 \n",
      "  spirv-tools        pkgs/main/linux-64::spirv-tools-2025.1-hdb19cb5_0 \n",
      "  tbb                pkgs/main/linux-64::tbb-2021.8.0-hdb19cb5_0 \n",
      "  threadpoolctl      pkgs/main/linux-64::threadpoolctl-3.5.0-py313h7040dfc_0 \n",
      "  xcb-util           pkgs/main/linux-64::xcb-util-0.4.1-h5eee18b_2 \n",
      "  xcb-util-cursor    pkgs/main/linux-64::xcb-util-cursor-0.1.5-h5eee18b_0 \n",
      "  xcb-util-image     pkgs/main/linux-64::xcb-util-image-0.4.0-h5eee18b_2 \n",
      "  xcb-util-keysyms   pkgs/main/linux-64::xcb-util-keysyms-0.4.1-h5eee18b_0 \n",
      "  xcb-util-renderut~ pkgs/main/linux-64::xcb-util-renderutil-0.3.10-h5eee18b_0 \n",
      "  xcb-util-wm        pkgs/main/linux-64::xcb-util-wm-0.4.2-h5eee18b_0 \n",
      "  xkeyboard-config   pkgs/main/linux-64::xkeyboard-config-2.44-h5eee18b_0 \n",
      "  xorg-libice        pkgs/main/linux-64::xorg-libice-1.1.2-h9b100fa_0 \n",
      "  xorg-libsm         pkgs/main/linux-64::xorg-libsm-1.2.6-h9b100fa_0 \n",
      "  xorg-libxext       pkgs/main/linux-64::xorg-libxext-1.3.6-h9b100fa_0 \n",
      "  xorg-libxfixes     pkgs/main/linux-64::xorg-libxfixes-6.0.1-h9b100fa_0 \n",
      "  xorg-libxrandr     pkgs/main/linux-64::xorg-libxrandr-1.5.4-h9b100fa_0 \n",
      "  xorg-libxrender    pkgs/main/linux-64::xorg-libxrender-0.9.12-h9b100fa_0 \n",
      "  xorg-libxshmfence  pkgs/main/linux-64::xorg-libxshmfence-1.3.3-h9b100fa_0 \n",
      "  xorg-libxxf86vm    pkgs/main/linux-64::xorg-libxxf86vm-1.1.6-h9b100fa_0 \n",
      "\n",
      "The following packages will be DOWNGRADED:\n",
      "\n",
      "  setuptools                         78.1.1-py313h06a4308_0 --> 72.1.0-py313h06a4308_0 \n",
      "\n",
      "\n",
      "\n",
      "Downloading and Extracting Packages:\n",
      "mkl-2023.1.0         | 171.5 MB  |                                       |   0% \n",
      "mysql-8.4.0          | 56.5 MB   |                                       |   0% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   |                                       |   0% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtdeclarative-6.7.3  | 16.2 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mesalib-25.1.5       | 8.9 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "matplotlib-base-3.10 | 8.3 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pyqt-6.7.1           | 5.1 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libprotobuf-5.29.3   | 3.5 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libpq-17.4           | 3.0 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "fonttools-4.55.3     | 2.9 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "aom-3.6.0            | 2.8 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "setuptools-72.1.0    | 2.6 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "harfbuzz-10.2.0      | 2.3 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "spirv-tools-2025.1   | 2.1 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libgfortran5-11.2.0  | 2.0 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pixman-0.46.4        | 1.9 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      " ... (more hidden) ...\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  |                                       |   0% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   |                                       |   0% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   |                                       |   0% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  |                                       |   0% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | 1                                     |   0% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   |                                       |   0% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | 1                                     |   1% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | 1                                     |   0% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | 1                                     |   1% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | 4                                     |   1% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | 3                                     |   1% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | 4                                     |   1% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | #                                     |   3% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 1                                     |   0% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #5                                    |   4% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | 9                                     |   2% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 1                                     |   0% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##7                                   |   7% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #                                     |   3% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #2                                    |   3% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 2                                     |   1% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ####1                                 |  11% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #8                                    |   5% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | ####4                                 |  12% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 3                                     |   1% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ######1                               |  17% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ##9                                   |   8% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 5                                     |   1% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #########7                            |  26% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ##1                                   |   6% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ####3                                 |  12% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | 7                                     |   2% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##############1                       |  38% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #####5                                |  15% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | ############9                         |  35% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #1                                    |   3% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##################3                   |  50% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #5                                    |   4% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ###5                                  |  10% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #9                                    |   5% \u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ######5                               |  18% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #####################5                |  58% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ####3                                 |  12% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##2                                   |   6% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #########################9            |  70% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ########4                             |  23% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##6                                   |   7% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #####3                                |  14% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###                                   |   8% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #############################4        |  80% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #########4                            |  26% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ######3                               |  17% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###4                                  |   9% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | #################################7    |  91% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ###########1                          |  30% \u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###8                                  |  10% \u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ############2                         |  33% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #######6                              |  21% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####1                                 |  11% \u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #############3                        |  36% \u001b[A\n",
      "\n",
      "\n",
      "scipy-1.16.0         | 24.8 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####5                                 |  12% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ##############8                       |  40% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtdeclarative-6.7.3  | 16.2 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####9                                 |  13% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ################1                     |  44% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtdeclarative-6.7.3  | 16.2 MB   | ####6                                 |  12% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #####3                                |  14% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #################3                    |  47% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | ######4                               |  17% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #####6                                |  15% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #############1                        |  35% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ##################7                   |  51% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | ###########4                          |  31% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ######                                |  16% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ##############3                       |  39% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ####################                  |  54% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | #################4                    |  47% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ######4                               |  17% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ################4                     |  44% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #####################3                |  58% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | #######################7              |  64% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ######8                               |  19% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ##################                    |  49% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ######################7               |  61% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | #############################4        |  80% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #######2                              |  20% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "intel-openmp-2023.1. | 17.2 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ###################5                  |  53% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ########################              |  65% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | ###################################8  |  97% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #######6                              |  21% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #####################                 |  57% \u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | #########################2            |  68% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ########                              |  22% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #######################8              |  64% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtbase-6.7.3         | 11.9 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  | ########3                             |  23% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | #########################6            |  69% \u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  | ########7                             |  24% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ###########################5          |  74% \u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  | #########1                            |  25% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ##############################1       |  82% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qtdeclarative-6.7.3  | 16.2 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  | #########5                            |  26% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ################################2     |  87% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #########9                            |  27% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ################################6     |  88% \u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##########3                           |  28% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | 8                                     |   2% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ##################################1   |  92% \u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ####################################2 |  98% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##########7                           |  29% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | #####4                                |  15% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ###################################4  |  96% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###########1                          |  30% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | ############7                         |  34% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ####################################6 |  99% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###########4                          |  31% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | ###################2                  |  52% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###########9                          |  32% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | ##########################4           |  72% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ############3                         |  33% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | ##################################    |  92% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #############                         |  35% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #############4                        |  36% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "scikit-learn-1.7.1   | 10.6 MB   | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "libllvm15-15.0.7     | 35.4 MB   | ##################################### | 100% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    | ########8                             |  24% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #############8                        |  37% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    |                                       |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    | ################6                     |  45% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "matplotlib-base-3.10 | 8.3 MB    | ########4                             |  23% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mkl-2023.1.0         | 171.5 MB  | ##############4                       |  39% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    | ###########7                          |  32% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    | #########################5            |  69% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "matplotlib-base-3.10 | 8.3 MB    | #################2                    |  47% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mesalib-25.1.5       | 8.9 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    | #######################5              |  64% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    | #################################9    |  92% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##############8                       |  40% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "matplotlib-base-3.10 | 8.3 MB    | ##################################4   |  93% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    | ################################7     |  88% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###############1                      |  41% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pyqt-6.7.1           | 5.1 MB    | ##############7                       |  40% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "numpy-base-2.3.1     | 8.6 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "qttools-6.7.3        | 6.6 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "matplotlib-base-3.10 | 8.3 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###############4                      |  42% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    | 1                                     |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libprotobuf-5.29.3   | 3.5 MB    | 1                                     |   0% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ################1                     |  44% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pyqt-6.7.1           | 5.1 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pyqt-6.7.1           | 5.1 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libpq-17.4           | 3.0 MB    | ###7                                  |  10% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    | ###########7                          |  32% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ################4                     |  44% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libpq-17.4           | 3.0 MB    | ####################################1 |  98% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    | #################################8    |  91% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ################8                     |  45% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libpq-17.4           | 3.0 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "fonttools-4.55.3     | 2.9 MB    | ########################9             |  67% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libprotobuf-5.29.3   | 3.5 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #################1                    |  46% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #################4                    |  47% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "aom-3.6.0            | 2.8 MB    | 2                                     |   1% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #################9                    |  48% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "aom-3.6.0            | 2.8 MB    | ##########################7           |  72% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "setuptools-72.1.0    | 2.6 MB    | #############################         |  79% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##################2                   |  49% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "spirv-tools-2025.1   | 2.1 MB    | 2                                     |   1% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "aom-3.6.0            | 2.8 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##################6                   |  50% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "spirv-tools-2025.1   | 2.1 MB    | ##################################5   |  93% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "setuptools-72.1.0    | 2.6 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "harfbuzz-10.2.0      | 2.3 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###################4                  |  53% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libgfortran5-11.2.0  | 2.0 MB    | 2                                     |   1% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pixman-0.46.4        | 1.9 MB    | 2                                     |   1% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###################8                  |  54% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      " ... (more hidden) ...\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pixman-0.46.4        | 1.9 MB    | ###################################5  |  96% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####################2                 |  55% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pixman-0.46.4        | 1.9 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      " ... (more hidden) ...\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #########################3            |  69% [A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##########################9           |  73% \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ###########################2          |  74% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | #############################2        |  79% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ################################3     |  87% \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ################################6     |  88% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####################################5 |  99% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pyqt-6.7.1           | 5.1 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "mysql-8.4.0          | 56.5 MB   | ##################################### | 100% \u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ####################################9 | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libcups-2.4.2        | 4.5 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libprotobuf-5.29.3   | 3.5 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "fonttools-4.55.3     | 2.9 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "aom-3.6.0            | 2.8 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "harfbuzz-10.2.0      | 2.3 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "spirv-tools-2025.1   | 2.1 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "setuptools-72.1.0    | 2.6 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "pixman-0.46.4        | 1.9 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "libgfortran5-11.2.0  | 2.0 MB    | ##################################### | 100% \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "mkl-2023.1.0         | 171.5 MB  | ##################################### | 100% [A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \n",
      "                                                                                \u001b[A\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "                                                                                \u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\u001b[A\n",
      "\n",
      "\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\u001b[A\n",
      "\n",
      "\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\u001b[A\n",
      "\n",
      "\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\n",
      "\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\u001b[A\n",
      "Preparing transaction: done\n",
      "Verifying transaction: done\n",
      "Executing transaction: done\n",
      "\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "conda install numpy matplotlib scikit-learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
